package com.example.dao;

import com.example.model.Blog;
import java.util.List;

/**
 * 博客数据访问层接口
 */
public interface BlogDao {
    /**
     * 添加博客
     * @param blog 博客对象
     * @return 新增博客的ID
     */
    int add(Blog blog);
    
    /**
     * 根据ID删除博客
     * @param id 博客ID
     * @return 受影响的行数
     */
    int delete(int id);
    
    /**
     * 更新博客信息
     * @param blog 博客对象
     * @return 受影响的行数
     */
    int update(Blog blog);
    
    /**
     * 根据ID查询博客
     * @param id 博客ID
     * @return 博客对象
     */
    Blog findById(int id);
    
    /**
     * 查询所有博客
     * @return 博客列表
     */
    List<Blog> findAll();
    
    /**
     * 根据用户ID查询博客列表
     * @param userId 用户ID
     * @return 博客列表
     */
    List<Blog> findByUserId(int userId);
    
    /**
     * 根据分类查询博客列表
     * @param category 分类
     * @return 博客列表
     */
    List<Blog> findByCategory(String category);
    
    /**
     * 根据关键词搜索博客标题或内容
     * @param keyword 关键词
     * @return 博客列表
     */
    List<Blog> search(String keyword);
    
    /**
     * 获取热门博客列表（按阅读量降序排序）
     * @param limit 限制数量
     * @return 热门博客列表
     */
    List<Blog> findHotBlogs(int limit);
    
    /**
     * 增加博客阅读量
     * @param id 博客ID
     * @return 是否成功
     */
    boolean incrementViewCount(int id);
} 